package com.itboye.jinpuyiyuan.interfaces;

/**
 * Created by Administrator on 2017/12/15 0015.
 */

public interface ISelectBranch<BranchBean>  {


    /**
     * api配置缓存清理
     */
    void deleteCacheConfig(String nope);

    /**
     * 获取配置
     */
    void getConfig();

    /**
     * 获取验证码
     * @param  accepter 电话号码(接受电话号)
     * @param  code_type 验证码类型(1: 注册 2: 更新密码 3: 新绑定手机号 5: 登录)
     * @param  code_length 验证码长度(3-8长度)默认6
     * @param  code_create_way 发送验证码类型(1: 仅字母大小写 2: 字母 + 数字 3: 仅数字)
     * @param  expire_time 验证码过期时间 (单位秒)
     */
    void getVerifyCode(String accepter,int code_type,int code_length,int code_create_way,int expire_time);

    /**
     * 验证验证码
     * @param  accepter 电话号码(接受电话号)
     * @param  code 验证码
     * @param  code_type 验证码类型(1: 注册 2: 更新密码 3: 新绑定手机号 4: 更换手机号 5: 登录 6: 找回密码)
     */
    void verificationVerifyCode(String accepter,String code,int code_type);


    /**
     * 修改密码（无验证码）
     * @param  uid 用户id
     * @param  password 旧的密码
     * @param  new_password 新密码密码
     */
    void updatePass(String uid,String password,String new_password);

    /**
     * 注册
     * @param  username 用户名
     * @param  mobile 电话号码
     * @param  code 验证码
     * @param  password 密码
     */
    void register(String username,String mobile,String code,String password);

    /**
     * 登录
     *  @param  nickname . 昵称 - 通过微信登录接口获得
     * @param  head 头像地址 - 通过微信登录接口获得
     *  @param  wx_open_id 微信open_id - 通过微信登录接口获得
     * @param  wx_union_id 微信union_id - 通过微信登录接口获得
     * @param  mobile 电话号码
     * @param  code 验证码
     *  @param  password 密码
     * @param  role 角色
     */
    void login(String nickname,String head,String wx_open_id,String wx_union_id,String mobile,String code,String password,String role);

    /**
     * 退出登录
     * @param  uid 用户ID
     * @param  session_id  会话id，登录成功后返回信息中存在
     */
    void outLogin(String uid,String session_id);

    /**
     * 用户删除(删除用户后，变更改了状态以及用户名)
     * @param  uid 用户ID
     */
    void deleteUser(String uid);

    /**
     * 忘记密码
     * @param  mobile 电话号码
     * @param  code 验证码
     * @param  new_password 密码
     */
    void forgetPassword(String mobile,String code,String new_password);

    /**
     * 修改密码
     * @param  uid 用户id
     * @param  password 旧密码
     * @param  new_password 密码
     */
    void resetPassword(String uid,String password,String new_password);

    /**
     * 意见反馈
     * @param  uid 用户id
     * @param  name 姓名
     * @param  suggest_content 意见内容
     * @param  tel 电话号码
     * @param  email 邮件
     * @param  img_ids 图片id
     * @param  extra 额外信息
     */
    void suggestContent(String uid,String name,String suggest_content,String tel,String email,String img_ids,String extra);

    /**
     * 用户身份信息获取
     * @param  uid 用户id
     */
    void getPersonInfo(String uid);
    /**
     * 用户身份证姓名更新
     * @param  uid 用户id
     * @param  card_no 身份证号
     * @param  real_name 真实姓名
     */
    void updatePersonInfo(String uid,String card_no,String real_name);
    /**
     * 用户gps位置更新
     * @param  uid 用户id
     * @param  lat 纬度
     * @param  lng 经度
     * @param  coordinate_type 坐标系类型[如果传了该值请确保坐标系正确,系统自动转换成gcj02坐标系](wgs84,gcj02,bd09)
     */
    void updateLocation(String uid,String lat,String lng,String coordinate_type);

    /**
     * 用户更新
     * @param  uid 用户id
     * @param  nickname 昵称(中文 + 英文字母)
     * @param  sign 个人签名(最大256个字符,一个中文计一个字符)
     * @param  sex  性别（0: 女 1: 男 2: 双或未知)
     * @param  realname  真名(最长32字符,一个中文计一个字符 UTF-8编码下)
     * @param  idnumber  身份证号(中国的身份证号规则)
     * @param  online_status 用户在线状态(0: 离线 1: 在线)默认1
     */
    void updateUserProfile(String uid, String nickname, String sign, int sex, String realname,
                           String idnumber, int online_status
                        );

    /**
     * 分院查询（可不填，不填默认为..）
     * @param  longitude 经度
     * @param  latitude 纬度
     */
    void queryBranch(long longitude,long latitude);

    /**
     * 分院科室查询
     * @param  hid 分院id
     *
     */
    void queryDepartment(int hid);

    /**
     * 医师查询
     * @param  uid 用户id
     * @param  hid 分院
     * @param  cid 科室
     * @param  doct_type 类型,0=>未分配,1=>门诊,2=>住院,3=>体验,其他=>全部
//     * @param  page_index
//     * @param  page_size
     */
    void queryDoctor(String uid,String hid,String cid,int doct_type);

    /**
     * 医师详情
     * @param  uid 用户id
     *             Article
     */
    void queryDoctorDetail(String uid);

    /**
     * 文章点赞
     * @param  id  文章id
     * @param  uid 用户id
     * @param  uid 是否取消点赞（0 点赞 1 取消）
     */
    void postLike(String id,String uid ,int cancel);

    /**
     * 文章详情
     * @param  id  文章id
     *
     */
    void articleDetail(String id);

    /**
     * 文章添加
     * @param  category  文章分类id  category(参考数据字典: 文章分类)
     *@param  author  添加人id
     *@param  author_name  添加人昵称
     *@param  cover  文章封面图片ID
     *@param  title  文章标题(最大128个字符,一个中文计一个字符)
     *@param  excerpt  文章摘要(最大256个字符,一个中文计一个字符)
     *@param  content  文章内容
     *@param  tags  文章标签(逗号隔开,不要超过5个标签)
     *@param  post_status  文章状态(草稿: draft, 正式发布: published)
     *@param  parent_id  父级文章id
     *@param  jump_url  文章跳转地址
     *@param  views  文章查看数
     *@param  article_from  文章来源(参考数据字典: 文章来源)
     *@param  likes  文章点赞数
     *
     *
     */
    void addArticle(String category,String author,String author_name,String cover,String title
            ,String excerpt,String content,String tags,String post_status,String parent_id
            ,String jump_url,int views,String  article_from,int likes);

    /**
     * 文章更新
     * @param  category  文章分类id  category(参考数据字典: 文章分类)
     *@param  author  添加人id
     *@param  author_name  添加人昵称
     *@param  cover  文章封面图片ID
     *@param  title  文章标题(最大128个字符,一个中文计一个字符)
     *@param  excerpt  文章摘要(最大256个字符,一个中文计一个字符)
     *@param  content  文章内容
     *@param  tags  文章标签(逗号隔开,不要超过5个标签)
     *@param  post_status  文章状态(草稿: draft, 正式发布: published)
     *@param  parent_id  父级文章id
     *@param  jump_url  文章跳转地址
     *@param  views  文章查看数
     *@param  article_from  文章来源(参考数据字典: 文章来源)
     *@param  likes  文章点赞数
     *
     *
     */
    void updateArticle(String category,String author,String author_name,String cover,String title
            ,String excerpt,String content,String tags,String post_status,String parent_id
            ,String jump_url,int views,String  article_from,int likes);

    /**
     * 文章查询
     * @param  category  文章分类id  category(参考数据字典: 文章分类)
     *@param  tags  文章标签(逗号隔开,不要超过5个标签)
     *@param  post_status  文章状态(草稿: draft, 正式发布: published)
     *
     */
    void queryArticle(String category,String tags,String post_status,int page_index,int page_size);

    /**
     * 文章删除
     * @param  id  文章id
     *
     */
    void deleteArticle(String  id);
    /**
     * 消息添加
     * @param  dtree_type  消息类型
     * @param  title  消息标题
     * @param  content  消息内容
     * @param  summary  消息摘要
     * @param  send_time  定时发送时间(时间戳)
     * @param  from_uid  发送方uid
     * @param  to_uid  接收方uid(-2: 表示全部)
     * @param  extra  额外信息(不同类型，不同消息内容)
     */
    void addMessage(String  dtree_type,String title,String content,String summary
            ,int send_time,String from_uid,String to_uid,String extra);

    /**
     * 消息查询
     * @param  uid  用户id
     * @param  msg_type  消息类型（不传则返回全部类型）
     * @param  page_index   分页页码
     * @param  page_size   每页数量
     */
    void queryMessage(String uid,String msg_type,int page_index,int page_size );

    /**
     * 轮播查询
     * @param  position  类型(app首页轮播: 00P007001)
     */
    void queryBanner(String position );

    /**
     * 会员等级接口(类型)
     * @param  uid  用户id
     */
    void memberGrade(String uid );


    /**
     * 区域接口(类型)
     * @param  uid  用户id
     */
    void queryRegion(String uid );

    /**
     * 查询用户信息
     * @param  openId  用户alibaichan id
     */
    void queryPersonInfo(String openId );

    /**
     * 同步用户信息
     * @param  uid  用户id
     */
    void synPersonInfo(String uid );
    /**
     * 用户添加标签
     * @param  uid  被贴标签的id
     * @param  tag_name  标签内容
     * @param  who_tag_uid  贴标签用户id
     */
    void addRemark(String uid,String tag_name,String who_tag_uid );
    /**
     * 用户删除标签
     * @param  id 自增id(只能输入数字)
     */
    void removeRemark(int id );

    /**
     * 用户查询标签
     * @param  uid 被添加标签的用户id
     */
    void queryRemark(int uid );

    /**
     * 用户在线状态查询
     * @param  bc_open_id  openid（阿里百川id）
     */
    void queryOnlineStatus(String bc_open_id);

    /**
     * 微信移动应用登录接口
     * @param  role  角色
     * @param  device_token  登录设备唯一码
     * @param  auth_code  微信授权码
     */
    void loginByWX(String  role,String device_token,String auth_code);
}
